/*
 * Copyright (C), 2002-2017, roy 学习代码
 * FileName: SqlGeneratorServiceImpl.java
 * Author:   roy
 * Date:     2017年1月8日 下午4:01:29
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.roy.roycodegenerator.service.generator.impl;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import com.roy.roycodegenerator.common.sql.SqlParserTools;
import com.roy.roycodegenerator.common.velocity.generator.GenerTemplateTools;
import com.roy.roycodegenerator.controller.sqlgenerator.vo.SqlGeneratorVo;
import com.roy.roycodegenerator.service.generator.SqlGeneratorService;
import com.roy.roycodegenerator.service.generator.dto.TableDto;
import com.roy.royminidao.common.framework.lang.result.GenericResult;

import net.sf.jsqlparser.JSQLParserException;

/**
 * 〈一句话功能简述〉<br>
 * 〈功能详细描述〉
 *
 * @author roy
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
@Service("sqlGeneratorService")
public class SqlGeneratorServiceImpl implements SqlGeneratorService {
    /**
     * 模版路径
     */
    @Value("#{royparams.templatePath}")
    String templatePath ;
    /**
     * 生成文件路径
     */
    @Value("#{royparams.generateFilePath}")
    String generateFilePath;

    /*
     * (non-Javadoc)
     * @see
     * com.roy.roycodegenerator.service.SqlGeneratorService#createTableGeneratorJava(com.roy.roycodegenerator.controller
     * .sqlgenerator.vo.SqlGeneratorVo)
     */
    @Override
    public GenericResult<String> createTableGeneratorJava(SqlGeneratorVo sqlGeneratorVo) throws JSQLParserException {
        GenericResult<String> result = new GenericResult<String>();
        // 解析sql，解析表名 、 解析列名
        TableDto tableDto = SqlParserTools.parserCreateTable(sqlGeneratorVo.getSql());
        tableDto.setPackageBasePatch(sqlGeneratorVo.getPackagePath());
        tableDto.setAuthor(sqlGeneratorVo.getAuther());
        tableDto.setNameSpace(sqlGeneratorVo.getNameSpace());
        // 生成文件
        GenerTemplateTools.generatorTemplate(tableDto, templatePath, generateFilePath, "UTF-8");

        return result;
    }

}
